#include <cstdlib>
#include "lista.h"
#include "assert.h"

/** 
 *  Tenes que eliminar de la lista todo nodo cuya coordenada x
 *  este en el intervalo [x-50, x+50] y cuya coordenada y' este
 *  en el intervalo [y-50, y+50]
 */
void borrar(Lista* lista, Uint32 x, Uint32 y)
{
	assert(lista != NULL);
	assert(x != 0 && y != 0);

	Nodo *nodo = lista->primero;
	Nodo *aux;

	assert(x > 50 && y > 50);

	Uint32 min_x = x - 50;
	Uint32 max_x = x + 50;
	Uint32 min_y = y - 50;
	Uint32 max_y = y + 50;

	while(nodo != NULL)
	{
		aux = nodo->prox;
		
		if
		(
			nodo->coord_x >= min_x &&
			nodo->coord_x <= max_x &&
			nodo->coord_y >= min_y &&
			nodo->coord_y <= max_y
		){
			if(nodo->prev != NULL)
				nodo->prev->prox = aux;
			
			else
				lista->primero = aux;
			
			if(aux != NULL)
				aux->prev = nodo->prev;
			
			free((void*) nodo);
		}
		
		nodo = aux;
	}
}
